#include <iostream>

using namespace std;

template <typename Tv,typename Te>
class Graph{
public:
	Tv one;
	Te yes;
	int my;

	Graph():one(0),yes(0),my(10){
		cout<<"parent:"<<this<<endl;
	}

	void pprint(){
		cout<<"pp:"<<this<<endl;
	}
};

template <typename Tv,typename Te>
class myGraph : public Graph<Tv,Te>{
public:
	void print(){
		cout<<"son:"<<this<<endl;
		cout<<this->my<<endl;
	}
};

class test1{
public:
	int test1_val;

	test1():test1_val(1){}
};

class test2:public test1{
public:
	test2(){}
	void print(){
		cout<<test1_val<<endl;
	}
};

int main(){
	Graph<int,int> w;
	w.pprint();
	myGraph<int,int> q;
	myGraph<int,int> y;
	q.print();
	y.print();
	return 0;
}
